The present invention relates generally to the field of data transfer within virtualized computing environments, and more particularly to data transfer within a computing node by directly utilizing shared system memory.
In system virtualization, each computing entity behaves as if it were a separate computer; information and data are transferred (e.g., communicated) utilizing computer networking. Some virtualized systems permit a VM to support multitenancy of a runtime environment or a shared container in a cloud computing application. In some virtualized systems, each tenant (e.g., application) may be treated as a computing entity. In computer networking, the transport layer provides end-to-end communication services for applications within a layered architecture of network components and protocols. The transport layer provides convenient services, such as application programming interfaces (APIs), connection-oriented data stream support, reliability, flow control, socket creation, socket closing, data transmission, and multiplexing. Computing entities within a virtualized system and entities external to a virtualized system may utilize a proxy server or a proxy application to process communications between computing entities.
Communication between applications within the same virtualized system progresses through a networking software stack associated with a first application and another networking software stack for the second application. Alternatively, a modification of an infrastructure, such as a Virtual Machine Communication Interface (VMCI) protocol, provides fast (e.g., low latency) and efficient (e.g., high bandwidth) communication between a virtual machine and the host operating system and between two or more virtual machines and/or applications executing on the same host (i.e., the same physical real computer).